perm filename RESULT.WRU[DOC,TOB] blob
sn#079451 filedate 1973-12-23 generic text, type T, neo UTF8
00100 OPTIMIZING THE HUECKEL OPERATOR
00200
00300
00400 We seek to choose settings for the Hueckel operator which will
00500 optimize its performance in the sense of requiring the minimum edge height
00600 for 50% detection, while keeping a chosen level of false positives (say
00700 1%), spurious edge candidates with zero signal. The techniques will
00800 work equally well for other operators and provides a good way of comparison
00900 and optimization.
01000
01100 We consider only random camera noise. Surface imperfections are
01200 part of the signal, and will be dealt with later. The camera noise is
01300 adequately modelled with a gaussian. The dependence of standard deviation
01400 on signal is a characteristic of the device. For a vidicon, the noise
01500 is preamp noise, independent of signal. A linear scale is appropriate for
01600 the vidicon, giving a constant error. For an image dissector operated in
01700 the mode of requiring a constant photon count, the error is proportional
01800 to the signal; a logarithmic scale gives a constant error.
01900
02000 The assumptions allow us to calculate analytically the behavior of any
02100 operator. The Hueckel operator is sufficiently complicated to discourage
02200 analytic calculation. We have made up fake data using a gaussian random
02300 number generator to obtain artificial edges in various orientations and
02400 step heights, including no step.
02500
02600 The first step is to determine 1% and 5% limits of the cutoff variables
02700 from fake data with no signal. These are the cutoff limits set by
02800 false positives.
02900 For the Hueckel operator, they are conf and diff. In terms of the signal
03000 squared, s0sq, and noise-squared, n0sq, they are:
03100 diff=s0sq;
03200 conf=sqrt(s0sq/(s0sq+n0sq)); ie the cosine of signal
03300 The second phase of evaluation is to determine the minimum edge signal
03400 which achieves 50% or more detection at the 1% and 5% limits. Here we
03500 must take enough samples to get a good approximation to these limits.
03600 conf diff min edge
03650 half height
03700 .95 1.250 .825
03800 .90 1.350 .70
03900 .85 1.350 .65
04000 .80 1.400 .67
04100 .75 1.400 .67
04150 Note that the height of a minimum edge is twice the amplitude shown.
04200 Values of diff are given in terms of the squared error and values of
04300 the minimum edge are in units of the error.
04400 The last values can be estimated independently. Since the conf
04500 cutoff has no effect for values below .85, the requirement is that
04600 diff be above the corresponding diff cutoff. We can evaluate the
04700 mean value of diff by a simulation with no noise. That value checks
04800 well with the values above.
04900 We note that the conf cutoff has almost no utility, and that the optimum
05000 setting is for conf about .85.
05100
05200 With the values determined for diff, conf, and the minimum step, we
05300 can calculate the standard deviation of angle and position
05400 of detected edges at various values
05500 of edge height.
05600 This is useful for determining colinearity, angle and position errors
05700 of straight line made from edge vectors, etc, particularly for extrapolation
05800 at vertices.
05900
06000
06100 Angular and position errors as a function of contrast
06200 Contrast Angular Error Position Error
06250 .7 .478 .449
06300 1.0 .30 .356
06400 2.0 .112 .236
06500 3.5 .0625 .180
06600 5.0 .0432 .135
06700 7.5 .0286 .0793
06800 10.0 .0222 .0495
06900 for 9 bits, noise of 5.0 and 2000 events
07000 An approximate expression for these values is that
07100 contrast*angular error is approx constant
07200 contrast*position error is approx constant
07300 Contrast Contrast* Contrast*
07400 Angular Error Position Error
07500 .7 .335 .314
07600 1.0 .30 .356
07700 2.0 .224 .472
07800 3.5 .219 .629
07900 5.0 .216 .675
08000 7.5 .205 .595
08100 10.0 .222 .495
08200
08300 We can evaluate sensitivity as a function of angle and position
08350 by calculating
08400 s0sq with no noise for various angles and positions.
08500 THETA S0SQ THETA(RAD) CY
08600 0 7.82 0 0
08700 .2 8.07 .078 .129
08800 .4 8.07 .157 .129
08900 .6 8.13 .236 .249
09000 .8 7.89 .314 .279
09100 1.0 8.00 .393 .391
09200
09300 DELTA S0SQ X
09400 0 7.82
09500 .25 7.82 0
09600 .50 8.28 .51
09700 .75 8.28 .51
09800 1.0 6.48 1.0
09900 1.25 6.48 .95
10000 1.50 5.47 1.51
10100 Note some effects of quantization of angle and position.
10200 CY should be nearly equal to theta, and x should be nearly equal
10300 to delta.
06000 A final evaluation is the sensitivity to smooth shading. Although Hueckel
06100 has said that the operator is insensitive to gradients, a glance at
06200 the analytic form indicates that it basically relies on the slope, or
06300 gradient. Smooth shading is quite common, and it is the experience
06400 of many of us that the Hueckel operator does turn up spurious edge points
06500 on the surface of curved objects, or where there are reflections.
06600 The same problem limits the utility of intensity countours and
06700 thresholding techniques.
06800 We are evaluating that sensitivity.
06900
07000 We can measure the camera noise by one of two methods:
07100 by putting a uniform scene (white paper, defocus camera)
07200 in front of the camera and evaluating
07300 the sum of (x(i+1)-x(i))↑2=2nε↑2
07400 where ε is the standard deviation. Or we can take the histogram of
07500 (x(i+1)-x(i))
07600 for actual scenes. If we take the 63% limits of the histogram,
07700 we will have an approximation to 2.8ε. We should not take
07800 the standard deviation from the variance of values, since edges will
07900 affect the sum of squares a great deal, while if edge points are few,
08000 they should not affect local histograms very much.
08100
08200 It is possible to eliminate undesired sensitivity to smooth shading
08300 by several methods, most of which are not useful.
08400 The second derivatives and third derivatives have more noise than the
08500 gradient. Subtracting the linear part of the signal over the support
08600 of an operator is a terribly bad method of eliminating smooth gradients.
08700 With the Hueckel operator that would eliminate nearly all the signal.
08800 The problem with that is that the linear approximation is over too small
08900 a support. What we want is to determine the linear part over a much larger
09000 domain. Lateral inhibition does this, although it is not immediately apparent.
09100 The biological system uses lateral inhibition for the same purpose as it
09200 was used in my edge operator at MIT. There is a difficulty with satellites
09300 which will be discussed in a moment. An elegant solution is the Retinex
09400 operation, by Horn, from Land. This uses lateral inhibition followed by
09500 the inverse.
09600
09700 The problem posed to motivate the retinex operation is:
09800 determine the reflectivities of objects, even when the illumination has
09900 shading. Put another way, illumination varies smoothly, while reflectivities
10000 vary discontinuously at boundaries. Eliminate the smooth shading. This can
10100 be done by taking the Laplacian, thresholding it, and taking
10200 the inverse. Thus, all the slopes are now turned into plateaus.
10300 The only problem with the operation is that we do not know a speedy
10400 implementation of the inverse.